package exception;

import java.io.UnsupportedEncodingException;

public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了...");
        try {
//            String str = null;
//            String str = "";
//            String str = "abc";
            String str = "123";
            System.out.println(str.length());
            System.out.println(str.charAt(0));
            System.out.println(Integer.parseInt(str));
            str.getBytes("UFT-8");
            /*
                try语句块中某句话如果出现了异常,则try语句块中这句话
                后面的所有代码都不会被执行了!
             */
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!");
        //当多个异常有相同处理方式时,可以使用"|"指定捕获的不同种类异常
        }catch(NullPointerException|StringIndexOutOfBoundsException e){
            System.out.println("出现了空指针或下标越界,并且解决完毕");
        //catch可以写多个,当针对不同的异常有不同处理方式时可以分别捕获
        }catch(NumberFormatException e){
            System.out.println("数字格式异常!");
        }catch(UnsupportedEncodingException e) {
            System.out.println("不支持的字符集名字!");
            e.printStackTrace();
        //尽量在最后一个catch处捕获Exception,避免未知的异常导致程序中断.
        }catch(Exception e){
            System.out.println("反正就是出了个错!");
        }
        System.out.println("程序结束了!");
    }
}
